Welcome to django!

8.04 常用字段

AutoFiele

int自增列,必须填入参考 primaya_key=true.

当model中如果没有自增列,则自动会创建一个列名为id的列。


BigAutoField

BigAutoField继承自autoField

bigint自增列,必须填入参考 primaya_key=true.


IntegerField

整型(有符号的)-2147483648~2147483647


BigIntgerField

长整型(有符号的)-922372036854775808-922372036854775807


SmallIntegerField

小整数 -32768~32767


PositiveSmallIntegerField

正整数 ~32767


BooleanField

布尔值类型


FloatField

浮点类型


DecimalField

10进制小数

参数:max_digits 小数总长度,decimal_places 小数位长度。


CharField

字符类型,必须提供max_length 参数,表示字符最大长度。


TextField

文件类型


binanryField

二进制类型


DateTimeField

日期时间字段,格式YYYY-MM-DD HH:MM[:SS[,uuuuuu]][TZ],相当于python中的datetime.datetime()实例

配置 auto_now_add=True,创建数据记录的时候会把当前时间添加到数据库。

配置上 auto_now =True,每次更新数据记录的时记会更新该字段。


DateField

日期字段,格式YYYY-MM-DD,相当于python中的datatime.date ()实例


TimeField

日期字段,格式HH:MM[:SS[,uuuuuu]]


EmailField(charField)

字符串类型,Django Admin以及ModelForm中提供验证机制


IPAddressField(charField)

字符串类型,Django Admin以及ModelForm中提供验证IPV4机制


URLField(charField)

字符串类型,Django Admin以及ModelForm中提供验证URL


UUIDField(charField)

字符串类型,Django Admin以及ModelForm中提供对UUID格式的验证


Django ORM也支技自定义字段,初学者暂时用不到。

对应关系(部分)

ORM类型 mysql类型
AutoField': 'integer AUTO_INCREMENT'
BigAutoField': 'bigint AUTO_INCREMENT'
BinaryField': 'longblob',
BooleanField': 'bool',
CharField': 'varchar(%(max_length)s)',
CommaSeparatedIntegerField': 'varchar(%(max_length)s)',
DateField': 'date',
DateTimeField': 'datetime',
DecimalField': 'numeric(%(max_digits)s%(decimal_places)s)',
DurationField': 'bigint',
FileField': 'varchar(%(max_length)s)',
FilePathField': 'varchar(%(max_length)s)',
FloatField': 'double precision'
IntegerField': 'integer',
BigIntegerField': 'bigint',
IPAddressField': 'char(15)',
GenericIPAddressField': 'char(39)',
NullBooleanField': 'bool',
OneToOneField': 'integer',
PositiveIntegerField': 'integer UNSIGNED'
PositiveSmallIntegerField': 'smallint UNSIGNED'
SlugField': 'varchar(%(max_length)s)',
SmallIntegerField': 'smallint',
TextField': 'longtext',
TimeField': 'time',
UUIDField': 'char(32)',

**其他ORM字段参数(部分)**

ORM类型 mysql类型
null 数据库中字段是否可以为空
db_column 数据库中字段的列名
default 数据库中字段的默认值
primary_key 数据库中字段是否为主键
db_index 数据库中字段是否可以建立索引
unique 数据库中字段是否可以建立唯一索引
unique_for_date 数据库中字段【日期】部分是否可以建立唯一索引
unique_for_month 数据库中字段【月】部分是否可以建立唯一索引
unique_for_year 数据库中字段【年】部分是否可以建立唯一索引
verbose_nameAdmin 中显示的字段名称
blankAdmin 中是否允许用户输入为空
editableAdmin 中是否可以编辑
help_textAdmin 中该字段的提示信息